package com.xunji.standard.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.xunji.standard.entity.StCase;
import com.xunji.standard.entity.TXjNdFlPersonInformation;
import com.xunji.standard.vo.rep.CaseAnalysisListResponse;
import com.xunji.standard.vo.rep.CaseAnalysisListResponse2;
import com.xunji.standard.vo.rep.CasePersonInformationResponse;
import com.xunji.standard.vo.rep.DataStatisticsResponse;
import com.xunji.standard.vo.req.CaseExportRequest;
import com.xunji.standard.vo.req.CaseOwnerUpdateRequest;
import com.xunji.standard.zip.CopyFileDto;

import java.util.ArrayList;
import java.util.List;

/**
 * @Author: xuqiang_imyours
 * @Date: 2025/6/18 14:43
 * @Description:
 **/
public interface CaseService extends IService<StCase> {
    List<StCase> getListByUserId(String userId);

    StCase addCaseByUserId(String userId);

    void updateByEntity(StCase stCase);

    void doProcess(String id, Long infoId, String uploadFilePath, String password);

    StCase getCaseById(String caseId);

    void saveCopyFile(ArrayList<CopyFileDto> dtos, String caseId, Long infoId);

    void doParse(String caseId, Long infoId);

    List<StCase> getCaseByIds(List<String> caseIds);

    List<CaseAnalysisListResponse> doPageInformation(List<TXjNdFlPersonInformation> persons, Integer type);

    String doExport(CaseExportRequest request);

    String doExportAll(String caseId);

    void updateCaseName(String caseId, String name);

    void deleteCase(String caseId);

    void logicalDeleteCase(String caseId);

    void restoreCase(String caseId);

    void deleteAnalysisPerson(String caseId, String xm, String sfzh, Integer type);

    List<CaseAnalysisListResponse2> doPageInformation2(List<TXjNdFlPersonInformation> persons, String caseId);

    CasePersonInformationResponse doInformationInfo(String caseId, Long personId);

    DataStatisticsResponse dataStatistics(String caseId);

    void updateOwnerInfo(CaseOwnerUpdateRequest request);
}
